package io.framework.modules.air.dao;

import io.framework.common.dao.BaseDao;
import io.framework.modules.air.dto.AirDTO;
import io.framework.modules.air.dto.AirExDTO;
import io.framework.modules.air.entity.AirEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 空气站点监测数据
 *
 * @author Gujq email
 * @since 1.0.0 2020-05-20
 */
@Mapper
public interface AirDao extends BaseDao<AirEntity> {

    /**
     * 全市AQI日历
     * @param params
     * @return
     */
    List<Map<String, Object>> aqiCalendar(Map<String, Object> params);

    /**
     * aqi 历史变化
     *
     * @param params
     * @return
     */
    List<Map<String, Object>> airAQIChange(Map<String, Object> params);

    /**
     * 空气因子变化
     * @param params
     * @return
     */
    List<Map<String, Object>> airFactorChange(Map<String, Object> params);

    /**
     * 根据参数获取空气站点检测数据
     * @param params
     * @return
     */
    List<AirEntity> getAirDTOIOnfoByParams(Map<String, Object> params);

    /**
     * 获取空气监测 最新一条数据
     * @param params
     * @return
     */
    AirEntity getAirDTOIOnfoByParam(Map<String, Object> params);

    /**
     * 空气质量排行
     * @param params
     * @return
     */
    List<Map<String,Object>> getAirStationInfoSort(Map<String, Object> params);

    /**
     * 验证空气数据上传
     * @param type
     * @param month
     * @return
     */
    List<AirEntity> checkData(@Param("type") Integer type , @Param("month") String month);

    /**
     * 根据时间 month 2020-04 删除数据
     * @param params
     * @return
     */
    int deleteInfoByDate(Map<String,Object> params);


    List<Map<String, Object>> aqiHistoryPm(Map<String, Object> params);

    List<AirExDTO> getAirRecentTime(@Param("createTime")String createTime);
}